package com.kinghood.productcenter.service.base;

import com.kinghood.productcenter.common.model.dao.base.BaseCategoryDO;
import com.baomidou.mybatisplus.extension.service.IService;
import com.kinghood.productcenter.common.model.dto.MoveChangeSortReqDTO;
import com.kinghood.infrastructure.model.dto.StatusReqDTO;
import com.kinghood.productcenter.common.model.dto.base.CategoryQueryDTO;
import com.kinghood.productcenter.common.model.dto.base.CategoryReqDTO;
import com.kinghood.productcenter.common.model.vo.base.CategoryVO;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * <p>
 * 基础选项-品类 服务类
 * </p>
 *
 * @author KingHood
 * @since 2023-12-20
 */
public interface IBaseCategoryService extends IService<BaseCategoryDO> {

    /**
     * 更新状态
     *
     * @param param 参数
     * @author jp
     * @date 2023/12/27
     */
    void updateCategoryStatus(StatusReqDTO param);

    /**
     * 添加或更新
     *
     * @param param 参数
     * @author jp
     * @date 2023/12/27
     */
    void addOrUpdateCategory(CategoryReqDTO param);

    /**
     * 列表
     *
     * @param param 参数
     * @author jp
     * @date 2023/12/27
     */
    List<CategoryVO> listAllCategory(CategoryQueryDTO param);

    /**
     * 删除
     *
     * @param id id
     * @author jp
     * @date 2023/12/27
     */
    public void delCategory(Long id);

    /**
     * 拖动更改排序
     *
     * @param param 参数
     * @author jp
     * @date 2023/12/27
     */
    void changeSort(MoveChangeSortReqDTO param);

    /**
     * 详细信息类别
     *
     * @param id id
     * @author jp
     * @date 2023/12/28
     */
    CategoryVO detailCategory(Long id);

    /**
     * 下载品类
     *
     * @param param    参数
     * @param response 回答
     * @author jp
     * @date 2024/01/04
     */
    void downloadCategory(CategoryQueryDTO param, HttpServletResponse response);
}
